package com.nulldev.util.graphics.renderIt.api.core;

import com.nulldev.util.graphics.renderIt.api.renderItConstants;

public interface RITFont extends AutoCloseable {

	public static final int RIT_FONT_VARIANT_NORMAL = 0;
	public static final int RIT_FONT_VARIANT_ITALIC = 1;
	public static final int RIT_FONT_VARIANT_BOLD = 2;
	public static final int RIT_FONT_VARIANT_EXTRA_BOLD = 3;
	public static final int RIT_FONT_VARIANT_CUSTOM_WEIGHT = 4;
	public static final int RIT_FONT_VARIANT_SMALL_CAPS = 5;

	public RITFont deriveToSize(final float size);

	public RITFont deriveToSize(final int size);

	public RITFont deriveToStyle(final int style);

	public String getFontName();

	public int getFontVariant();

	public float getFontSize();

	public default int getFormat() {
		return renderItConstants.RIT_NOT_SUPPORTED;
	}

	public default Object getFontObject() {
		throw new UnsupportedOperationException("No internal object stored!");
	}
}
